package com.example.common;

import lombok.Data;

/**
 * 后端通用返回结果
 */
@Data
public class Result {

    // 状态码
    private String code;

    // 描述
    private String msg;

    // 返回数据
    private Object data;

    /**
     * 成功结果
     *
     * @return 返回成功结果，状态码为 200，描述为"请求成功"，数据为空
     */
    public static Result success() {
        Result result = new Result();
        result.setCode("200");
        result.setMsg("请求成功");
        return result;
    }

    /**
     * 成功结果
     *
     * @param data 返回数据
     * @return 返回成功结果，状态码为 200，描述为"请求成功"，有数据
     */
    public static Result success(Object data) {
        Result result = Result.success();
        result.setData(data);
        return result;
    }

    /**
     * 失败结果
     *
     * @return 返回失败结果，状态码为 500，描述为"请求失败"，数据为空
     */
    public static Result error() {
        Result result = new Result();
        result.setCode("500");
        result.setMsg("请求失败");
        return result;
    }

    /**
     * 失败结果
     *
     * @param code 状态码
     * @param msg 描述
     * @return 返回失败结果，状态码为 code，描述为 msg，数据为空
     */
    public static Result error(String code, String msg) {
        Result result = new Result();
        result.setCode(code);
        result.setMsg(msg);
        return result;
    }
}
